home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / prolog / brklyprl.lha / Emulator / Tests / names.pl < prev    next >
Encoding:
Text File  |  1989-04-14  |  700 b   |  31 lines

  1.  
  2. /* Copyright (C) 1988, 1989 Herve' Touati, Aquarius Project, UC Berkeley */
  3.  
  4. main :- print_results([rule(2,[m,i,i]),rule(2,[m,i,i,i,i])],0).
  5.  
  6. print_results([], _).
  7. print_results([rule(N,G)|T], M) :-
  8.     M1 is M + 1,
  9.     implode(A, G),
  10.     write(M1), write('  '), print_rule(N), write(A), nl,
  11.     print_results(T, M1).
  12.  
  13. print_rule(0) :- write('axiom    ').
  14. print_rule(N) :- N =\= 0, write('rule '), write(N), write('   ').
  15.  
  16. % Break atom A into list of characters L.
  17. explode(A, L) :-
  18.     name(A, Ascii),
  19.     name_list(L, Ascii).
  20.  
  21. % Combine list of characters L into atom A.
  22. implode(A, L) :-
  23.     name_list(L, Ascii),
  24.     name(A, Ascii).
  25.  
  26. name_list([], []).
  27. name_list([H1|T1], [H2|T2]) :-
  28.     name(H1, [H2]),
  29.     name_list(T1, T2).
  30.  
  31.